package com.fastloan.jn.mgt.application.basic.model.vo;

import com.kawins.base.baseabs.BaseModel;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

public class JnApplicationVo extends BaseModel<String> {
    /**
     * 进件id
     */
    private String id;

    /**
     * 客户id
     */
    private String customerId;

    /**
     * 产品id
     */
    private String productId;

    /**
     * 客户经理id
     */
    private String customerManagerId;

    private Integer applicationStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 进件退回原因
     */
    private String repulseReason;

    /**
     * 进件申请原因
     */
    private String applyReason;

    /**
     * 进件审批金额
     */
    private BigDecimal approveAmount;

    /**
     * 进件申请金额
     */
    private BigDecimal applyAmount;

    /**
     * 放款时间
     */
    private Date loanTime;

    /**
     * 审贷会id
     */
    private String approvalReviewId;

    /**
     * 进件编号
     */
    private String applicationCode;

    /**
     * 最新逾期时间
     */
    private Date overdueLastTime;

    /**
     * 逾期金额(当逾期时为逾期金额 不逾期时为欠款金额)
     */
    private BigDecimal overdueLimit;

    /**
     * 逾期开始时间
     */
    private Date overdueStartTime;

    private String ipcExcelPath;

    /**
     * 进件审批利率
     */
    private BigDecimal approvalRate;

    /**
     * 自动还款计划是否生效(0 未生成 1 已生效 ）
     */
    private Integer inAutoRepayment;

    /**
     * 还款周期(天)
     */
    private Integer loanPeriod;

    /**
     * 还款周期次数
     */
    private Integer loanPeriodCount;

    /**
     * 罚息
     */
    private BigDecimal penalty;

    /**
     * 手续费
     */
    private BigDecimal counterFee;

    /**
     * 还款金额
     */
    private BigDecimal repayAmount;

    /**
     * 已产生利息
     */
    private BigDecimal interest;

    /**
     * 还款方式
     */
    private Integer repaymentMode;

    /**
     * 还款计划需要还的本金
     */
    private BigDecimal principal;

    /**
     * 周期利率(0天，1月，2年）
     */
    private Integer rateType;

    /**
     * 有未通过项,是否申请审批, 0 否, 1是  2拒绝 3通过
     */
    private Integer applyApprove;

    /**
     * 不良金额
     */
    private BigDecimal badAmount;

    private String productName;

    private String cname;

    private String customerName;

    private String fileName;

    private String fileId;

    private Date fileCreateTime;

    public String getFileId() {
        return fileId;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }

    public Date getFileCreateTime() {
        return fileCreateTime;
    }

    public void setFileCreateTime(Date fileCreateTime) {
        this.fileCreateTime = fileCreateTime;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getCname() {
        return cname;
    }

    public void setCname(String cname) {
        this.cname = cname;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public BigDecimal getBadAmount() {
        return badAmount;
    }

    public JnApplicationVo setBadAmount(BigDecimal badAmount) {
        this.badAmount = badAmount;
        return this;
    }

    /**
     * 获取进件id
     *
     * @return ID - 进件id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置进件id
     *
     * @param id 进件id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取客户id
     *
     * @return CUSTOMER_ID - 客户id
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户id
     *
     * @param customerId 客户id
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取产品id
     *
     * @return PRODUCT_ID - 产品id
     */
    public String getProductId() {
        return productId;
    }

    /**
     * 设置产品id
     *
     * @param productId 产品id
     */
    public void setProductId(String productId) {
        this.productId = productId;
    }

    /**
     * 获取客户经理id
     *
     * @return CUSTOMER_MANAGER_ID - 客户经理id
     */
    public String getCustomerManagerId() {
        return customerManagerId;
    }

    /**
     * 设置客户经理id
     *
     * @param customerManagerId 客户经理id
     */
    public void setCustomerManagerId(String customerManagerId) {
        this.customerManagerId = customerManagerId;
    }

    /**
     * @return APPLICATION_STATUS
     */
    public Integer getApplicationStatus() {
        return applicationStatus;
    }

    /**
     * @param applicationStatus
     */
    public void setApplicationStatus(Integer applicationStatus) {
        this.applicationStatus = applicationStatus;
    }

    /**
     * 获取创建时间
     *
     * @return CREATE_TIME - 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取进件退回原因
     *
     * @return REPULSE_REASON - 进件退回原因
     */
    public String getRepulseReason() {
        return repulseReason;
    }

    /**
     * 设置进件退回原因
     *
     * @param repulseReason 进件退回原因
     */
    public void setRepulseReason(String repulseReason) {
        this.repulseReason = repulseReason;
    }

    /**
     * 获取进件申请原因
     *
     * @return APPLY_REASON - 进件申请原因
     */
    public String getApplyReason() {
        return applyReason;
    }

    /**
     * 设置进件申请原因
     *
     * @param applyReason 进件申请原因
     */
    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    /**
     * 获取进件审批金额
     *
     * @return APPROVE_AMOUNT - 进件审批金额
     */
    public BigDecimal getApproveAmount() {
        return approveAmount;
    }

    /**
     * 设置进件审批金额
     *
     * @param approveAmount 进件审批金额
     */
    public void setApproveAmount(BigDecimal approveAmount) {
        this.approveAmount = approveAmount;
    }

    /**
     * 获取进件申请金额
     *
     * @return APPLY_AMOUNT - 进件申请金额
     */
    public BigDecimal getApplyAmount() {
        return applyAmount;
    }

    /**
     * 设置进件申请金额
     *
     * @param applyAmount 进件申请金额
     */
    public void setApplyAmount(BigDecimal applyAmount) {
        this.applyAmount = applyAmount;
    }

    /**
     * 获取放款时间
     *
     * @return LOAN_TIME - 放款时间
     */
    public Date getLoanTime() {
        return loanTime;
    }

    /**
     * 设置放款时间
     *
     * @param loanTime 放款时间
     */
    public void setLoanTime(Date loanTime) {
        this.loanTime = loanTime;
    }

    /**
     * 获取审贷会id
     *
     * @return APPROVAL_REVIEW_ID - 审贷会id
     */
    public String getApprovalReviewId() {
        return approvalReviewId;
    }

    /**
     * 设置审贷会id
     *
     * @param approvalReviewId 审贷会id
     */
    public void setApprovalReviewId(String approvalReviewId) {
        this.approvalReviewId = approvalReviewId;
    }

    /**
     * 获取进件编号
     *
     * @return APPLICATION_CODE - 进件编号
     */
    public String getApplicationCode() {
        return applicationCode;
    }

    /**
     * 设置进件编号
     *
     * @param applicationCode 进件编号
     */
    public void setApplicationCode(String applicationCode) {
        this.applicationCode = applicationCode;
    }

    /**
     * 获取最新逾期时间
     *
     * @return OVERDUE_LAST_TIME - 最新逾期时间
     */
    public Date getOverdueLastTime() {
        return overdueLastTime;
    }

    /**
     * 设置最新逾期时间
     *
     * @param overdueLastTime 最新逾期时间
     */
    public void setOverdueLastTime(Date overdueLastTime) {
        this.overdueLastTime = overdueLastTime;
    }

    /**
     * 获取逾期金额(当逾期时为逾期金额 不逾期时为欠款金额)
     *
     * @return OVERDUE_LIMIT - 逾期金额(当逾期时为逾期金额 不逾期时为欠款金额)
     */
    public BigDecimal getOverdueLimit() {
        return overdueLimit;
    }

    /**
     * 设置逾期金额(当逾期时为逾期金额 不逾期时为欠款金额)
     *
     * @param overdueLimit 逾期金额(当逾期时为逾期金额 不逾期时为欠款金额)
     */
    public void setOverdueLimit(BigDecimal overdueLimit) {
        this.overdueLimit = overdueLimit;
    }

    /**
     * 获取逾期开始时间
     *
     * @return OVERDUE_START_TIME - 逾期开始时间
     */
    public Date getOverdueStartTime() {
        return overdueStartTime;
    }

    /**
     * 设置逾期开始时间
     *
     * @param overdueStartTime 逾期开始时间
     */
    public void setOverdueStartTime(Date overdueStartTime) {
        this.overdueStartTime = overdueStartTime;
    }

    /**
     * @return IPC_EXCEL_PATH
     */
    public String getIpcExcelPath() {
        return ipcExcelPath;
    }

    /**
     * @param ipcExcelPath
     */
    public void setIpcExcelPath(String ipcExcelPath) {
        this.ipcExcelPath = ipcExcelPath;
    }

    /**
     * 获取进件审批利率
     *
     * @return APPROVAL_RATE - 进件审批利率
     */
    public BigDecimal getApprovalRate() {
        return approvalRate;
    }

    /**
     * 设置进件审批利率
     *
     * @param approvalRate 进件审批利率
     */
    public void setApprovalRate(BigDecimal approvalRate) {
        this.approvalRate = approvalRate;
    }

    /**
     * 获取自动还款计划是否生效(0 未生成 1 已生效 ）
     *
     * @return IN_AUTO_REPAYMENT - 自动还款计划是否生效(0 未生成 1 已生效 ）
     */
    public Integer getInAutoRepayment() {
        return inAutoRepayment;
    }

    /**
     * 设置自动还款计划是否生效(0 未生成 1 已生效 ）
     *
     * @param inAutoRepayment 自动还款计划是否生效(0 未生成 1 已生效 ）
     */
    public void setInAutoRepayment(Integer inAutoRepayment) {
        this.inAutoRepayment = inAutoRepayment;
    }

    /**
     * 获取还款周期(天)
     *
     * @return LOAN_PERIOD - 还款周期(天)
     */
    public Integer getLoanPeriod() {
        return loanPeriod;
    }

    /**
     * 设置还款周期(天)
     *
     * @param loanPeriod 还款周期(天)
     */
    public void setLoanPeriod(Integer loanPeriod) {
        this.loanPeriod = loanPeriod;
    }

    /**
     * 获取还款周期次数
     *
     * @return LOAN_PERIOD_COUNT - 还款周期次数
     */
    public Integer getLoanPeriodCount() {
        return loanPeriodCount;
    }

    /**
     * 设置还款周期次数
     *
     * @param loanPeriodCount 还款周期次数
     */
    public void setLoanPeriodCount(Integer loanPeriodCount) {
        this.loanPeriodCount = loanPeriodCount;
    }

    /**
     * 获取罚息
     *
     * @return PENALTY - 罚息
     */
    public BigDecimal getPenalty() {
        return penalty;
    }

    /**
     * 设置罚息
     *
     * @param penalty 罚息
     */
    public void setPenalty(BigDecimal penalty) {
        this.penalty = penalty;
    }

    /**
     * 获取手续费
     *
     * @return COUNTER_FEE - 手续费
     */
    public BigDecimal getCounterFee() {
        return counterFee;
    }

    /**
     * 设置手续费
     *
     * @param counterFee 手续费
     */
    public void setCounterFee(BigDecimal counterFee) {
        this.counterFee = counterFee;
    }

    /**
     * 获取还款金额
     *
     * @return REPAY_AMOUNT - 还款金额
     */
    public BigDecimal getRepayAmount() {
        return repayAmount;
    }

    /**
     * 设置还款金额
     *
     * @param repayAmount 还款金额
     */
    public void setRepayAmount(BigDecimal repayAmount) {
        this.repayAmount = repayAmount;
    }

    /**
     * 获取已产生利息
     *
     * @return INTEREST - 已产生利息
     */
    public BigDecimal getInterest() {
        return interest;
    }

    /**
     * 设置已产生利息
     *
     * @param interest 已产生利息
     */
    public void setInterest(BigDecimal interest) {
        this.interest = interest;
    }

    /**
     * 获取还款方式
     *
     * @return REPAYMENT_MODE - 还款方式
     */
    public Integer getRepaymentMode() {
        return repaymentMode;
    }

    /**
     * 设置还款方式
     *
     * @param repaymentMode 还款方式
     */
    public void setRepaymentMode(Integer repaymentMode) {
        this.repaymentMode = repaymentMode;
    }

    /**
     * 获取还款计划需要还的本金
     *
     * @return PRINCIPAL - 还款计划需要还的本金
     */
    public BigDecimal getPrincipal() {
        return principal;
    }

    /**
     * 设置还款计划需要还的本金
     *
     * @param principal 还款计划需要还的本金
     */
    public void setPrincipal(BigDecimal principal) {
        this.principal = principal;
    }

    /**
     * 获取周期利率(0天，1月，2年）
     *
     * @return RATE_TYPE - 周期利率(0天，1月，2年）
     */
    public Integer getRateType() {
        return rateType;
    }

    /**
     * 设置周期利率(0天，1月，2年）
     *
     * @param rateType 周期利率(0天，1月，2年）
     */
    public void setRateType(Integer rateType) {
        this.rateType = rateType;
    }

    /**
     * 获取有未通过项,是否申请审批, 0 否, 1是  2拒绝 3通过
     *
     * @return APPLY_APPROVE - 有未通过项,是否申请审批, 0 否, 1是  2拒绝 3通过
     */
    public Integer getApplyApprove() {
        return applyApprove;
    }

    /**
     * 设置有未通过项,是否申请审批, 0 否, 1是  2拒绝 3通过
     *
     * @param applyApprove 有未通过项,是否申请审批, 0 否, 1是  2拒绝 3通过
     */
    public void setApplyApprove(Integer applyApprove) {
        this.applyApprove = applyApprove;
    }
}